package sentinel;

import com.sun.corba.se.impl.interceptors.SlotTable;
import jdk.nashorn.internal.ir.JumpToInlinedFinally;

/*
* 最简单的计数器限流算法
* */
public class Class01_getCountInTime {
    public long timeStamp = System.currentTimeMillis();//当前时间
    public int count = 0;//计数器
    public int limit = 100;//限流请求数
    public int interval =  1000*60;// 统计时间单元

    public boolean limit(){
        long now = System.currentTimeMillis();
         if (now < timeStamp + interval) {
            // 在时间窗口内
            count++;
            // 判断当前时间窗口内是否超过最大请求控制数
            return count <= limit;
        } else {
            timeStamp = now;
            // 超时后重置
            count = 1;
            return true;
        }
    }
}
